python 斐波那契数列之你不知道的神奇故事 您所在的位置:网站首页 python 斐波那契数 python 斐波那契数列之你不知道的神奇故事

python 斐波那契数列之你不知道的神奇故事

2023-03-09 17:49| 来源: 网络整理| 查看: 265

斐波那契数列

三岁学编程:最白话的语言带领学习编程,都是小白,一起努力

戏说斐波那契(兔子数列)

斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。

一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?

解析兔子: 第一个月小兔子没有繁殖能力,所以还是一对

两个月后,生下一对小兔对数共有两对

三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对

------

依次类推可以列出下表: 月份: 1 2 3 4 5 6 7 8 9 10 11 12 兔子数: 1 1 2 3 5 8 13 21 34 55 89 144 复制代码

兔子的个数就是所谓的斐波那契数列

定义

一个数列从第3项开始,每一项都等于前两项之和时就称这个数列为斐波那契数列。

方法一:for循环(迭代)

递增计算,利用for循环逐个相加得到结果

def fibon_1(n): #设置函数fibon_1函数 a = 0 b = 1 for i in range(n+1): a , b = b, a+b return a fac = int(input("输入需要的位数:")) for i in range(fac): print(fibon_1(i),end=' ') 结果: 输入需要的位数: 5 1 1 2 3 5 复制代码 方法二:递归

斐波那契数列为经典的递归公示: 这里可以采用递归的方法获取

def fibon_2(n): if n 1: return fibon_2(n-1)+fibon_2(n-2) #采用递归方式 fac = int(input("输入需要的位数:")) for i in range(1,fac+1): print(fibon_2(i),end=' ') 结果 输入需要的位数:5 1 1 2 3 5 复制代码 方法三:生成器

采用生成器

def fb_3(): a,b = 0,1 while True: yield a a , b = b , a+b g = int(input('需要获取斐波那契数列的多少位')) for i in fb_3: print(i): n = n+1 if n == g: break 复制代码

也可以用一下方式获取1000一下的值

a=0 b=1 while b < 1000: print(b,end=',')#end 可以将print输出到同一行并以 ,号结尾 a, b = b, a+b 结果 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987, 复制代码

该代码简单但不是很完整还需要一定的改正

C语言实现: #include main(){ int fibonacci[20],i,j; fibonacci[0]=0; fibonacci[1]=1; for(i=2;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有